Methods for precoding signals for transmission in wireless MIMO system

ABSTRACT

Methods discussed herein provide more efficient precoding matrices for precoding signals prior to transmission. The methods discussed herein improve throughput in wireless MIMO systems. Methods discussed herein are applicable to frequency division duplexing (FDD) systems, time division duplexing (TDD) systems as well as other wireless communication systems.

BACKGROUND OF THE INVENTION

Multiple-input-multiple-output (MIMO) systems represent an advance inwireless communication. MIMO systems employ one or more (e.g., multiple)antennas at the transmitting and receiving ends of a wireless link toimprove the data transmission rate, while holding radio bandwidth andpower constant.

A MIMO transmitter transmits an outgoing signal using multiple antennasby demultiplexing the outgoing signal into multiple sub-signals andtransmitting the sub-signals from separate antennas. MIMO exploits themultiple signal propagation paths to increase throughput and reduce biterror rates. Using MIMO techniques the rate of transmission increaseslinearly depending on the local environment.

A portion of a conventional multiple-input-multiple-output (MIMO)wireless broadcast system is shown in FIG. 1.

Referring to FIG. 1, a base station 100 is equipped with M antennas (inFIG. 1, M=3) and the plurality of mobiles 10-1 through 10-t are equippedwith one or more antennas. For the sake of clarity, it is assumed thatall mobiles 10-1 through 10-t are equipped with only a single antenna.

During transmission, a signal s_(j) transmitted from the j-th antenna(where j=1, . . . , M) of the base station 100 and received by the i-thmobile 10-i (where i=1, . . . , t) is multiplied by a channelcoefficient vector h_(ij). Signals q_(i) for i=1, . . . , t that have tobe transmitted to respective mobiles 1, 2, . . . , t are mapped intosignals s_(j) for j=1, . . . , M transmitted from respective antennas 1,. . . , M. This is known as preceding.

Precoding is generalized beamforming that supports multi-layertransmission in MIMO systems. Precoding enables multiple streams ofsignals to be emitted from the transmit antennas with independent andappropriate weighting per each antenna such that link throughput ismaximized.

Precoding algorithms for multi-user MIMO can be sub-divided into linearand nonlinear preceding types. Linear precoding approaches achievereasonable throughput performance with lower complexity relative tononlinear precoding approaches.

Returning to FIG. 1, conventionally, the base station 100 implements alinear precoding algorithm as follows.

The channel coefficients h_(ij) form a channel matrix,

$H = {\begin{bmatrix}h_{1} \\h_{2} \\\vdots \\h_{t}\end{bmatrix} = {\begin{bmatrix}{h_{11},h_{12},\ldots \mspace{11mu},h_{1\; M}} \\{h_{21},h_{22},\ldots \mspace{11mu},h_{2\; M}} \\\vdots \\{h_{t\; 1},h_{t\; 2},\ldots \mspace{11mu},h_{tM}}\end{bmatrix}.}}$

The entries of the channel matrix H are the channel coefficients of thechannel coefficient vectors h_(i)=(h_(i1), h₂, . . . , h_(iM)), wherei=1, 2, . . . , t.

The base station 100 precodes signals

$\begin{bmatrix}q_{1} \\q_{2} \\\vdots \\q_{t}\end{bmatrix}$

to be transmitted to corresponding mobiles by computing the vector Saccording to equation (1) shown below in which G is an M×t complexmatrix, such that Tr(GG*)=1. The operator Tr(A) is the standard trace ofoperators of a square matrix A. For example, if a_(ij) are elements ofA, and A is an M×M matrix, then

${{Tr}(A)} = {\sum\limits_{i = 1}^{M}{a_{ii}.}}$

$\begin{matrix}{S = {\begin{bmatrix}s_{1} \\s_{2} \\\vdots \\s_{t}\end{bmatrix} = {G\begin{bmatrix}q_{1} \\q_{2} \\\vdots \\q_{t}\end{bmatrix}}}} & (1)\end{matrix}$

Equation (1) uses standard matrix multiplication to spread signals q₁,q₂, . . . , q_(t) into signals s₁, s₂, . . . , s_(M). Signals q₁, q₂, .. . , q_(t) are signals to be transmitted to mobiles 10-1, 10-2, . . . ,10-t, respectively. In this example, the precoding of the signals q₁,q₂, . . . , q_(t) spreads each of the signals among the M antennas atthe base station 100.

The base station 100 then transmits the precoded signals s₁, s₂, . . . ,s_(M) from base station antennas 1, 2, . . . , M, respectively.

At the i-th mobile 10-i, for example, the resultant received signalx_(i) is equal to the linear combination of the signals sent from all Mantennas of the base station 100 and the additive noise z_(i). Morespecifically, the received signal x_(i) is given by equation (2) shownbelow.

x _(i) =s ₁ h _(i1) +s ₂ h _(i2)+ . . . +s_(M) h _(iM) +z _(i)  (2)

Currently, there exists only methods for locating a precoding matrix Gbased on the assumption that the actual channel matrix H is equal to theestimated channel matrix Ĥ, which is far from reality.

SUMMARY OF THE INVENTION

Illustrative embodiments provide methods for locating an efficientprecoding matrix G using an estimated channel matrix and a set ofchannel matrix estimation errors.

The methods discussed herein provide significant increases in thethroughput of the system compared with other known methods of linearpreceding.

An illustrative embodiment provides a method for precoding signals fortransmission. In this embodiment, a base station generates channelmatrices as a function of an estimated channel matrix and channelestimation error matrices. The base station determines a set of firstand a set of second diagonal matrices associated with the estimatedchannel matrix and the channel estimation error matrices. The basestation iteratively computes the precoding matrix based on at least thegenerated channel matrices, the first set of diagonal matrices and thesecond set of diagonal matrices, and precodes the signals fortransmission based on the precoding matrix.

Another illustrative embodiment provides a method of signal transmissionfrom base station to mobile. According to this embodiment, the basestation iteratively computes a precoding matrix based on intermediateprecoding matrix parameters. The intermediate precoding matrixparameters are computed based on channel parameters associated with awireless channel between the base station and the mobile. The channelparameters include at least generated diagonal matrices and a set ofchannel matrices associated with the wireless channel. The base stationprecodes signals for transmission to the mobile based on the precodingmatrix and transmits the precoded signals to the mobile.

BRIEF DESCRIPTION OF THE DRAWINGS

The present invention will become more fully understood from thedetailed description given herein below and the accompanying drawings,wherein like elements are represented by like reference numerals, whichare given by way of illustration only and thus are not limiting of thepresent invention and wherein:

FIG. 1 illustrates a conventional MIMO system;

FIG. 2 is a flowchart illustrating a method for locating a precodingmatrix according to an illustrative embodiment;

FIG. 3 illustrates a portion of a frequency division duplexing (FDD)system in which example embodiments may be implemented;

FIG. 4 shows simulation results for an FDD system implementing methodsaccording to illustrative embodiments; and

FIG. 5 illustrates a portion of a time-division duplexing (TDD) systemin which example embodiments may be implemented; and

FIG. 6 shows simulation results for a TDD system implementing methodsaccording to illustrative embodiments.

DETAILED DESCRIPTION OF THE EMBODIMENTS

Various example embodiments of the present invention will now bedescribed more fully with reference to the accompanying drawings inwhich some example embodiments of the invention are shown.

Detailed illustrative embodiments of the present invention are disclosedherein. However, specific structural and functional details disclosedherein are merely representative for purposes of describing exampleembodiments of the present invention. This invention may, however, maybe embodied in many alternate forms and should not be construed aslimited to only the embodiments set forth herein.

It will be understood that, although the terms first, second, etc. maybe used herein to describe various elements, these elements should notbe limited by these terms. These terms are only used to distinguish oneelement from another. For example, a first element could be termed asecond element, and, similarly, a second element could be termed a firstelement, without departing from the scope of example embodiments of thepresent invention. As used herein, the term “and/or,” includes any andall combinations of one or more of the associated listed items.

It will be understood that when an element is referred to as being“connected,” or “coupled,” to another element, it can be directlyconnected or coupled to the other element or intervening elements may bepresent. In contrast, when an element is referred to as being “directlyconnected,” or “directly coupled,” to another element, there are nointervening elements present. Other words used to describe therelationship between elements should be interpreted in a like fashion(e.g., “between,” versus “directly between,” “adjacent,” versus“directly adjacent,” etc.).

The terminology used herein is for the purpose of describing particularembodiments only and is not intended to be limiting of exampleembodiments of the invention. As used herein, the singular forms “a,”“an,” and “the,” are intended to include the plural forms as well,unless the context clearly indicates otherwise. It will be furtherunderstood that the terms “comprises,” “comprising,” “includes,” and/or“including,” when used herein, specify the presence of stated features,integers, steps, operations, elements, and/or components, but do notpreclude the presence or addition of one or more other features,integers, steps, operations, elements, components, and/or groupsthereof.

It should also be noted that in some alternative implementations, thefunctions/acts noted may occur out of the order noted in the figures.For example, two figures shown in succession may in fact be executedsubstantially concurrently or may sometimes be executed in the reverseorder, depending upon the functionality/acts involved.

Specific details are provided in the following description to provide athorough understanding of example embodiments. However, it will beunderstood by one of ordinary skill in the art that example embodimentsmay be practiced without these specific details. For example, systemsmay be shown in block diagrams in order not to obscure the exampleembodiments in unnecessary detail. In other instances, well-knownprocesses, structures and techniques may be shown without unnecessarydetail in order to avoid obscuring example embodiments.

Also, it is noted that example embodiments may be described as a processdepicted as a flowchart, a flow diagram, a data flow diagram, astructure diagram, or a block diagram. Although a flowchart may describethe operations as a sequential process, many of the operations may beperformed in parallel, concurrently or simultaneously. In addition, theorder of the operations may be re-arranged. A process may be terminatedwhen its operations are completed, but may also have additional stepsnot included in the figure. A process may correspond to a method, afunction, a procedure, a subroutine, a subprogram, etc. When a processcorresponds to a function, its termination may correspond to a return ofthe function to the calling function or the main function.

Moreover, the term “storage medium” or “computer readable medium” mayrepresent one or more devices for storing data, including read onlymemory (ROM), random access memory (RAM), magnetic RAM, core memory,magnetic disk storage mediums, optical storage mediums, flash memorydevices and/or other machine readable mediums for storing information.The term “computer-readable medium” may include, but is not limited to,portable or fixed storage devices, optical storage devices, wirelesschannels and various other mediums capable of storing, containing orcarrying instruction(s) and/or data.

Furthermore, example embodiments may be implemented by hardware,software, firmware, middleware, microcode, hardware descriptionlanguages, or any combination thereof. When implemented in software,firmware, middleware or microcode, the program code or code segments toperform the necessary tasks may be stored in a machine or computerreadable medium such as a storage medium. A processor(s) may perform thenecessary tasks.

A code segment may represent a procedure, a function, a subprogram, aprogram, a routine, a subroutine, a module, a software package, a class,or any combination of instructions, data structures, or programstatements. A code segment may be coupled to another code segment or ahardware circuit by passing and/or receiving information, data,arguments, parameters, or memory contents. Information, arguments,parameters, data, etc. may be passed, forwarded, or transmitted via anysuitable means including memory sharing, message passing, token passing,network transmission, etc.

As used herein, the term “mobile” may be considered synonymous to, andmay hereafter be occasionally referred to, as a client, mobile unit,mobile station, mobile user, user equipment (UE), subscriber, user,remote station, access terminal, receiver, etc., and may describe aremote user of wireless resources in a wireless communication network.

Similarly, as used herein, the term “base station” may be consideredsynonymous to, and may hereafter be occasionally referred to, as a NodeB, base transceiver station (BTS), etc., and may describe a transceiverin communication with and providing wireless resources to mobiles in awireless communication network. As discussed herein, base stations mayhave all functionally associated with conventional, well-known basestations in addition to the capability to perform the methods discussedherein.

Example embodiments will be described in the general sense with respectto the conventional MIMO system in FIG. 1, and then a somewhat moredetailed description will be provided for a frequency division duplexing(FDD) system and a time division duplexing (TDD) system shown in FIGS. 3and 5, respectively. However, it will be understood that exampleembodiments may be implemented in other MIMO systems as well as otherwireless communication systems. For example, methods discussed hereinmay be implemented in connection with any communication system in whichan approximated channel matrix Ĥ and a set S_(CEE) of channel estimationerror matrices {tilde over (H)}₁, {tilde over (H)}₂, . . . {tilde over(H)}_(L) are available at the base station or other network processingelement.

Example embodiments provide methods for generating a more efficientprecoding matrix for precoding signals for transmission by the basestation to mobiles (the downlink). In doing so, example embodimentsprovide algorithms for generating an estimated (approximated) channelmatrix Ĥ and a set S_(CEE) of channel estimation error matrices {tildeover (H)}₁, {tilde over (H)}₂, . . . {tilde over (H)}_(L) at a basestation. The index L is a parameter identifying the number of samples ofmatrices {tilde over (H)}, or in other words, the number of matrices{tilde over (H)} used by the base station for finding an efficientprecoding matrix G. The larger the value of L the more closely thegenerated precoding matrix G will be to the ideal precoding matrix(which would be generated if L was infinity). At the same time thelarger L the higher computational complexity. Parameter L may be set bya network operator depending on many factors, such as, how powerful thecomputer is at the base station in which the methods discussed hereinare executed.

Example embodiments provide methods for generating a more efficientprecoding matrix G based on an estimated channel matrix Ĥ and a setS_(CEE) of the channel estimation error matrices {tilde over (H)}₁,{tilde over (H)}₂, . . . {tilde over (H)}_(L).

FIG. 2 is a flowchart illustrating an example embodiment of a method forgenerating a more efficient precoding matrix. The method shown by way ofthe flow chart in FIG. 2 may be implemented, for example, at the basestation 100 in FIG. 1.

Referring to FIG. 2, at step S200 the base station 100 computes a setS_(cm) of channel matrices H₁, H₂, . . . H_(L) based on the estimatedchannel matrix Ĥ and a set S_(CEE) of channel estimation error matrices{tilde over (H)}₁, {tilde over (H)}₂, . . . {tilde over (H)}_(L).

The base station 100 computes a channel matrix H corresponding to eachof the channel estimation errors matrices {tilde over (H)}₁, {tilde over(H)}₂, . . . {tilde over (H)}_(L) in the set S_(CEE). In more detail,the base station 100 computes the set of channel matrices S_(cm)according to equation (3) shown below.

H _(l) =Ĥ+{tilde over (H)} _(l) for all l=1, . . . , L  (3)

As noted above, the estimated channel matrix Ĥ (not the actual channelmatrix H) and statistics of the channel estimation error matrix {tildeover (H)} (where {tilde over (H)}=H−Ĥ) are available at the base station100.

The base station 100 generates the set S_(CEE) of channel estimationerror matrices {tilde over (H)}₁, {tilde over (H)}₂, . . . {tilde over(H)}_(L) using the known statistics of the channel estimation errormatrix {tilde over (H)}.

Returning to FIG. 2, at step S202 the base station 100 initializesdiagonal matrices E_(j) and F_(j), where j=1, . . . , L, for each of thecomputed channel matrices H_(l). In one example, the diagonal matricesE_(j) and F_(j) are set equal to the identity matrix I_(M). The matrixI_(M) is an M×M identity matrix in which all diagonal entries are 1. Forexample, for M=3, the identity matrix I_(M) is:

$I_{M} = {\begin{bmatrix}1 & 0 & 0 \\0 & 1 & 0 \\0 & 0 & 1\end{bmatrix}.}$

In more detail, the base station 100 sets the diagonal matrices for thej-th antenna E_(j) and F_(j) according to equation (4) shown below.

E_(j)=I_(M) and F_(j)=I_(M) for all j=1, . . . , M  (4)

Although discussed herein as being set according to equation (4), thediagonal matrices E_(j) and F_(j) may be set in any suitable manner.Also at step S202, the base station 100 initializes a counter value k=1.The counter value k is used by the base station 100 to track the numberof iterations of the method shown in FIG. 2.

At step S204, the base station 100 computes intermediate precodingmatrix calculation parameters X and Y based on the generated diagonalmatrices E_(j) and F_(j), the variance σ² of the additive noise z_(i)(mentioned above), and the generated set S_(cm) of channel matrices H₁,H₂, . . . H_(L). In more detail, the base station 100 computesparameters X and Y according to equations (5) and (6) shown below.

$\begin{matrix}{X = {{\sum\limits_{j = 1}^{L}{H_{j}F_{j}H_{j}^{*}}} + {\sigma^{2}{{Tr}\left( F_{j} \right)}I_{M}}}} & (5) \\{Y = {\sum\limits_{j = 1}^{L}{H_{j}E_{j}}}} & (6)\end{matrix}$

In each of equations (5) and (6), “*” denotes the Hermitian conjugationof a complex matrix. Moreover, the intermediate precoding matrixcalculation parameters X and Y are internal variables used to retainintermediate values calculated during iterations of the process shown inFIG. 2. The precoding matrix calculation parameter X is generated as afunction of at least the channel matrices H₁, H₂, . . . H_(L), thediagonal matrices F_(j), and the variance σ² of the additive noisez_(i). The precoding matrix calculation parameter Y is generated as afunction of the channel matrices H₁, H₂, . . . H_(L) and the diagonalmatrices E_(j).

Still referring to FIG. 2, at step S206 the base station 100 generates aprecoding matrix G_(k) (where k is the above-mentioned counter value)based on the generated intermediate precoding matrix calculationparameters X and Y. More specifically, the base station 100 generatesthe precoding matrix G_(k) based on intermediate precoding matrixcalculation parameter Y and the inverse of the intermediate precodingmatrix calculation parameter X, or in other words X⁻¹. In equation form,the base station 100 computes the precoding matrix G_(k) according toequation (7) shown below.

G _(k) =X ⁻¹ Y  (7)

At step S208, the base station 100 performs a first threshold operationto determine if further iterations of steps S204 and S206 are necessary.In one example, the first threshold operation is based on an increase inthe throughput between the current precoding matrix and the previously(most recently) calculated preceding matrix. In this example, at leasttwo iterations of steps S204 and S206 are performed.

At step S208, if G_(k) is the precoding matrix found at the k-thiteration, the base station 100 computes the expected value of thethroughput T_(k) based on the generated precoding matrix G_(k) and thecorresponding channel matrix H.

In one example, the base station 100 computes the throughput T_(k), foran arbitrary t×M channel matrix H and an arbitrary M×T precoding matrixG, as follows:

${T\left( {H,G} \right)} = {{\log\left( {1 + \frac{P_{1}{{h_{1}g_{1}}}^{2}}{{\sum\limits_{j \neq 1}{P_{j}{{h_{1}g_{j}}}^{2}}} + \sigma^{2}}} \right)} + {\log\left( {1 + \frac{P_{2}{{h_{2}g_{2}}}^{2}}{{\sum\limits_{j \neq 2}{P_{j}{{h_{2}g_{j}}}^{2}}} + \sigma^{2}}} \right)} + \ldots + {\left( {1 + \frac{P_{M}{{h_{M}g_{M}}}^{2}}{{\sum\limits_{j \neq M}{P_{j}{{h_{M}g_{j}}}^{2}}} + \sigma^{2}}} \right).}}$

In the equation shown immediately above, g, is the r-th column of theprecoding matrix G, h_(j) is the j-th row of the channel matrix H, P_(j)is the power of the signal q_(j), and σ² is the variance of the additivenoise z_(i).

More specifically with respect to the method shown in FIG. 2, the basestation 100 computes the throughput T_(k) according to equation (8).

$\begin{matrix}{T_{k} = {\frac{1}{L}\left( {{T\left( {H_{1},G_{k}} \right)} + \ldots + {T\left( {H_{L},G_{k}} \right)}} \right)}} & (8)\end{matrix}$

The base station 100 then computes the difference D_(T) between thecurrent throughput T_(k) and the most recently computed throughputT_(k-1).

The base station 100 then compares the calculated difference D_(T) witha throughput increase threshold value THRESHOLD. The threshold valueTHRESHOLD may be a predefined or given value determined by a networkoperator based on simulations, empirical data, etc.

Returning to step S208, if the difference D_(T) is less than or equal tothe threshold THRESHOLD, the base station 100 determines that no furtheriterations of steps S204 and S206 are necessary and that the precodingmatrix G_(k) is sufficient for transmission of signals by the basestation 100. In other words, if the difference D_(T) is less than orequal to the threshold THRESHOLD, the process terminates.

Returning to step S208, if the calculated difference D_(T) is greaterthan the threshold THRESHOLD, the base station 100 determines thatfurther iterations of steps S204 and S206 would be beneficial. In thiscase, at step S210, the base station 100 increments the counter valuek=k+1 and performs a second thresholding operation at step S212 todetermine whether a further iteration of steps S204 and S206 should beperformed. The second thresholding operation includes comparing thecounter value k with a counter threshold TH_C. The counter thresholdTH_C may be set by a network operator and may have a value of, forexample, 10 or more.

At step S212, if the counter value k is greater than or equal to thecounter threshold TH_C, the base station 100 determines that a maximumnumber of iterations of steps S204 and S206 has been performed, and theprocess terminates. In this case, the base station 100 uses the mostrecently calculated precoding matrix G_(k) in precoding signals fortransmission.

Returning to step S212, if the counter value is less than the counterthreshold TH_C, the method proceeds to step S214.

At step S214 new values for each of the diagonal matrices E_(j) andF_(j) associated with each of the M antennas are computed according toequations (9)-(10) shown below.

diag(E _(j))=((AB)₁₁ /d ₁, . . . , (AB)_(MM) /d _(M))  (9)

diag(F _(j))=(N ₁/(d ₁(d ₁ +N ₁)), . . . , N _(M)/(d _(M)(d _(M) +N_(M))))  (10)

Here diag(Z) is the diagonal of a square matrix Z, if for example Z isan M×M matrix and z_(ij) are its entries, then diag(Z)=(z₁₁, z₂₂, . . ., z_(MM)).

In equations (9) and (10), A is a t×M matrix and B is an M×t matrix setaccording to equations (11) and (12) set forth below.

A=H_(j), for j=1, . . . , L  (11)

B=G_(k)  (12)

Also in equations (9) and (10), a, is the r-th row of the matrix A andb_(j) is the j-th column of matrix B. Variable N_(m) is defined byequation (13) shown below.

N _(m) =|a _(m) b _(m)|²  (13)

Variable d_(m) is defined by equation (14) shown below.

$\begin{matrix}{d_{m} = {{\sigma^{2}{{Tr}\left( {AA}^{*} \right)}} + {\sum\limits_{{n = 1},{n \neq m}}^{M}{{a_{n}b_{m}}}^{2}}}} & (14)\end{matrix}$

After recalculating values for each of the diagonal matrices E_(j) andF_(j), the method proceeds to step S204 and continues as discussedabove.

After generating the preceding matrix G_(k) according to the method setforth in FIG. 2 (e.g., after several iterations of the process), thebase station 100 precodes signals to be transmitted using the precodingmatrix G_(k) in the manner discussed above. The base station 100 thentransmits the signals to destination mobiles in any well-known manner.

In an alternative embodiment, the method of FIG. 2 may omit step S208,and use only the second thresholding operation in determining whether tocontinue with iterations of the process. In this case, if the countervalue k is less than the counter threshold TH_C, the method proceeds tostep S214 (discussed in detail above). Otherwise, the processterminates.

In an alternative embodiment, methods according to illustrativeembodiments may be characterized as equivalent to finding a maximum inthe equation E_({tilde over (H)})[T(Ĥ+{tilde over (H)}, G)]. In thisequation, E_({tilde over (H)}) is the operator of expectation withrespect to the probability distribution of {tilde over (H)}.

Two more specific example embodiments will described in more detailbelow.

FDD System Example

FIG. 3 illustrates a frequency division duplexing (FDD) system 102 inwhich example embodiments may be implemented.

In FDD systems such as that shown in FIG. 3, the base station 200 sendspilot signals to mobiles 20-1 through 20-t. The base station 200 may bethe same or substantially the same as the base station 100 shown inFIG. 1. Using these pilot signals each mobile 20-1 through 20-testimates its channel vector based on the received pilot signals in anywell known manner. For example, the channel vector h, for the i-thmobile is given by equation (15) shown below.

h _(i)=(h _(i1) , h _(i2) , . . . , h _(iM)), i=1, . . . , M  (15)

The mobiles 20-1 through 20-t transmit approximations of their channelvectors back to the base station 200 via a separate frequency band.

Conventionally, unnecessary mobile resources (e.g., time and bandwidth)are used to transmit these channel vectors directly to the base station200 because each channel vector consists of M complex numbers (e.g.,h_(i1), . . . , h_(iM) for the i-th mobile). A conventional approach toreduce the use of resources is to use a quantization codebook.

A quantization codebook C={c₁=(c₁₁, . . . , c_(1M)), . . . ,c_(B)=(c_(B1), . . . , c_(BM))} known to all of the mobiles 20-1 through20-t and to the base station 200 is designated in advance, for example,by a network operator.

Using the quantization codebook, after receiving the pilot signals andcomputing the channel vector h_(i)=(h_(i1), h_(i2), . . . , h_(iM)), thei-th mobile identifies the code vector c_(r) _(i) =(c_(r) _(i) ₁, . . ., c_(r) _(i) _(M))εC that is closest to the computed channel vectorh_(i)=(h_(i1), h_(i2), . . . , h_(iM)). In one example, the i-th mobiledetermines the code vector c_(r) _(i) =(c_(r) _(i) ₁, . . . , c_(r) _(i)_(M))εC that is closest to the computed channel vector h_(i)=(h_(i1),h_(i2), . . . , h_(iM)) according to equation (16) shown below.

dist(c _(r) _(i) ,h _(i))<dist(c _(j) ,h _(i)) for any j≠r_(i)  (16)

In equation (16), dist(x,y) is a function that measures distance betweenvectors x and y. As is well-known in the art, there are manypossibilities for dist(x,y) and any suitable one may be used. In oneexample, dist(x,y) may be the Euclidean distance between x and y. Forexample, if vector x=(x₁, x₂, . . . , x_(M)) and vector y=(y₁, y₂, . . ., y_(M)), then

${{dist}\left( {x,y} \right)} = {\sum\limits_{j = 1}^{M}{{{x_{j} - y_{j}}}^{2}.}}$

After identifying the closest c_(r) _(i) , the i-th mobile 20-itransmits only the index r_(i) to the base station 200, rather than theentire channel vector h_(i)=(h_(i1), h_(i2), . . . , h_(iM)). The basestation 200 identifies the vector c_(r) _(i) =(c_(r) _(i) ₁, . . . ,c_(r) _(i) _(M))εC based on the received index r_(i) and treats thevector c_(r) _(i) =(c_(r) _(i) ₁, . . . , c_(r) _(i) _(M))εC as anapproximation of the channel vector h_(i)=(h_(i1), h_(i2), . . . ,h_(iM)). Using the indices r₁, . . . , r_(t) received from the mobiles10-1, . . . , 10-t, respectively, the base station 200 generates anestimate of the channel matrix Ĥ according to equation (17) shown below.

$\begin{matrix}{\hat{H} = \begin{bmatrix}c_{r_{1}} \\c_{r_{2}} \\\vdots \\c_{r_{t}}\end{bmatrix}} & (17)\end{matrix}$

In more detail, upon receiving indices r₁, r₂, . . . , r_(t) from themobiles 20-1 through 20-t, the base station 200 forms channel estimationerror matrices {tilde over (H)}_(j), for j=1, . . . , L based on the setof code vectors c_(r) _(i) corresponding to the received indices r₁, r₂,. . . , r_(t). For example, the base station 200 forms the channelestimation error matrices {tilde over (H)}_(j), for j=1, . . . , L suchthat the i-th row of channel estimation error matrix {tilde over(H)}_(j) is a random vector from the set C_(r) _(i) (where randomvectors from C_(r) _(i) are taken according to a uniform distribution).For the r-th code word C_(r)=(c_(r), . . . , c_(rM))εC the set C_(r) isdefined by C_(r)={h_(i):dist(h_(i),c_(r))<dist(h_(i),c_(j)) for anyj≠r}. The channel estimation error matrices {tilde over (H)}_(j), forj=1, . . . , L are random samples of estimation error generatedaccording to the distribution of channel estimation error {tilde over(H)}.

Using the computed estimated channel matrix Ĥ and the channel estimationerror matrices {tilde over (H)}_(j), for j=1, . . . , L the base station200 generates the precoding matrix G_(k) as discussed above with regardto FIG. 2.

FIG. 4 shows simulation results for the case in which the base stationhas M=8 antennas, the number of mobiles t is 4, and a suitablequantization code book C. The throughputs of systems with precodingmatrix G were generated according to example embodiments describedherein and with precoding matrix G generated according to the knownzero-forcing method. As shown in FIG. 4, the methods described hereinprovide a significant increase in the system throughput.

TDD System Example

FIG. 5 illustrates a portion of a time division duplexing (TDD) wirelesssystem for further explaining methods according to example embodiments.

In the TDD system 302, mobiles 30-1 through 30-t send pilot signals tothe base station 300 and the base station 300 computes channel estimatesĥ_(ij) of the channel coefficients h_(ij) between the i-th mobile andthe j-th antenna. The base station 300 may be the same or substantiallythe same as the base station 100 in FIG. 1 and/or the base station 200in FIG. 3.

Based on these computed channel estimates ĥ_(ij) the base station 300generates the estimated channel matrix Ĥ. Methods for doing so arewell-known in the art. Therefore a description of this methodology isomitted for the sake of brevity.

Since mobiles 30-1 through 30-t typically transmit with a low power,their pilot signals are also weak and therefore estimation error isusually large. A conventional, known way to obtain channel estimatesĥ_(ij) is to use a linear minimum mean square error estimator.

In this example, estimation errors are independent of the estimatedchannel matrix Ĥ. Moreover, the probability distribution function (PDF)of the estimation errors may be found analytically in the case ofGaussian channel or with the help of simulations. Methods fordetermining the PDF of the estimation error are well-known in the art.Thus, for the sake of this discussion, it is assumed that the PDF of theestimation errors is known at the base station 100. In this example, itis assumed that f is the PDF of the estimation errors.

Based on the PDF f, the base station 300 generates a set of randommatrices {tilde over (H)}_(i), for i=1, . . . , L. It is noted that thematrices {tilde over (H)}_(i), for i=1, . . . , L may be computed inadvance. Also note that in many cases the entries are independent andidentically distributed, as in the case of Gaussian channels. Methodsfor generating random matrices based on a known PDF of estimation errorsare well-known in the art.

Using the estimated channel matrix Ĥ and random matrices {tilde over(H)}_(i), for i=1, . . . , L, the base station 300 generates theprecoding matrix G_(k) according the method discussed above with regardto FIG. 2.

FIG. 6 shows simulation results for a case in which the base station hasM=6 antennas and the system includes t=4 mobiles. The graph wasgenerated using throughputs of systems with preceding matrix G_(k)generated according to the method shown in FIG. 2 and with precodingmatrix G_(k) generated according to the well-known regularized zeroforcing method. Example embodiments clearly provide a significantincrease in the system throughput.

Methods discussed herein provide significant increases in the throughputof the system compared with other known methods of linear precoding.

The invention being thus described, it will be obvious that the same maybe varied in many ways. Such variations are not to be regarded as adeparture from the invention, and all such modifications are intended tobe included within the scope of the invention.

1. A method for precoding signals for transmission, the methodcomprising: generating, at a base station, channel matrices as afunction of an estimated channel matrix and channel estimation errormatrices; determining, at the base station, a set of first and a set ofsecond diagonal matrices associated with the estimated channel matrixand the channel estimation error matrices; iteratively computing, at thebase station, the precoding matrix based on at least the generatedchannel matrices, the first set of diagonal matrices and the second setof diagonal matrices; and precoding the signals for transmission basedon the precoding matrix.
 2. The method of claim 1, wherein theiteratively computing step comprises: re-determining the first andsecond sets of diagonal matrices during each iteration of computing thepreceding matrix.
 3. The method of claim 2, wherein the iterativelycomputing step further comprises: first calculating, during a firstiteration of the iteratively computing step, a first precoding matrixbased on at least the generated channel matrices, the first set ofdiagonal matrices and the second set of diagonal matrices; computing afirst expected throughput based on the calculated first precodingmatrix; calculating, during a second iteration of the iterativelycomputing step, a second precoding matrix based on at least thegenerated channel matrices, the re-determined first set of diagonalmatrices and the re-determined second set of diagonal matrices;computing a second expected throughput based on the calculated secondprecoding matrix; and determining whether to perform a third iterationof the iteratively computing step based on the first and second expectedthroughputs and a threshold value.
 4. The method of claim 3, wherein thedetermining step further comprises: comparing a difference between thefirst and second expected throughputs with the threshold value; whereinif the difference between the first and second expected throughputs isgreater than the threshold value, the base station performs a thirditeration of the iteratively computing step.
 5. The method of claim 3,wherein the determining step further comprises: comparing a differencebetween the first and second expected throughputs with the thresholdvalue; incrementing a counter value if the difference between the firstand second expected throughputs is greater than the threshold value;comparing the incremented counter value with a counter threshold value;and determining whether to perform a third iteration of the iterativelycomputing step based on the comparison between the incremented countervalue and the counter threshold value.
 6. The method of claim 5, whereinthe base station performs the third iteration of the iterativelycomputing step if the counter value is less than the counter thresholdvalue.
 7. The method of claim 5, wherein the base station does notperform the third iteration of the iteratively computing step if theincremented counter value is greater than or equal to the counterthreshold value.
 8. The method of claim 7, wherein the precoding stepfurther comprises: precoding the signals for transmission by the basestation based on the second precoding matrix.
 9. The method of claim 3,wherein the determining step further comprises: comparing a differencebetween the first and second expected throughputs with the thresholdvalue; wherein if the difference between the first and second expectedthroughputs is less than the threshold value, the base station does notperform a third iteration of the iteratively computing step.
 10. Themethod of claim 9, wherein the precoding step further comprises:preceding the signals for transmission by the base station based on thesecond preceding matrix.
 11. The method of claim 10, further comprising:transmitting the precoded signals to a destination mobile.
 12. Themethod of claim 1, further comprising: transmitting the precoded signalsto a destination mobile.
 13. A method of signal transmission from basestation to mobile, the method comprising: iteratively computing, at thebase station, a precoding matrix based on intermediate precoding matrixparameters, the intermediate precoding matrix parameters being computedbased on channel parameters associated with a wireless channel betweenthe base station and the mobile, the channel parameters including atleast generated diagonal matrices and a set of channel matricesassociated with the wireless channel; precoding signals for transmissionto the mobile based on the precoding matrix; and transmitting theprecoded signals to the mobile.
 14. The method of claim 13, wherein theiteratively computing step further comprises: first calculating, duringa first iteration of the iteratively computing step, a first precodingmatrix based on a first set of intermediate precoding matrix parameters;computing a first expected throughput based on the calculated firstprecoding matrix; calculating, during a second iteration of theiteratively computing step, a second precoding matrix based on a secondset of intermediate precoding matrix parameters; computing a secondexpected throughput based on the calculated second precoding matrix; anddetermining whether to perform a third iteration of the iterativelycomputing step based on the first and second expected throughputs and athreshold value.
 15. The method of claim 14, wherein the determiningstep further comprises: comparing a difference between the first andsecond expected throughputs with the threshold value; wherein if thedifference between the first and second expected throughputs is greaterthan the threshold value, the base station performs a third iteration ofthe iteratively computing step.
 16. The method of claim 14, wherein thedetermining step further comprises: comparing a difference between thefirst and second expected throughputs with the threshold value; whereinif the difference between the first and second expected throughputs isless than the threshold value, the base station does not perform a thirditeration of the iteratively computing step.
 17. The method of claim 14,wherein the determining step further comprises: comparing a differencebetween the first and second expected throughputs with the thresholdvalue; incrementing a counter value if the difference between the firstand second expected throughputs is greater than the threshold value;comparing the incremented counter value with a counter threshold value;and determining whether to perform a third iteration of the iterativelycomputing step based on the comparison between the incremented countervalue and the counter threshold value.
 18. The method of claim 17,wherein the base station performs the third iteration of the iterativelycomputing step if the counter value is less than the counter thresholdvalue.
 19. The method of claim 17, wherein the base station does notperform the third iteration of the iteratively computing step if theincremented counter value is greater than or equal to the counterthreshold value.
 20. The method of claim 19, wherein the precoding stepfurther comprises: precoding the signals for transmission by the basestation based on the second precoding matrix.